package cn.iocoder.yudao.module.bpm.service.oa.listener;

import cn.hutool.extra.spring.SpringUtil;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oaapply.OaApplyDO;
import cn.iocoder.yudao.module.bpm.service.oaapply.OaApplyService;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;

/**
 * 类型为 class 的 TaskListener 监听器示例
 *
 * @author 芋道源码
 */
@Slf4j
public class BpmDelegateClassTaskListener implements TaskListener {

    public BpmDelegateClassTaskListener() {
        log.info("[BpmDelegateClassTaskListener][BpmDelegateClassTaskListener() 创建]");
    }
    @Override
    public void notify(DelegateTask delegateTask) {
        OaApplyService oaApplyService = SpringUtil.getBean(OaApplyService.class);
        String eventName = delegateTask.getEventName();
        String nodeName = delegateTask.getName();

        if ("create".equals(eventName) && "制单".equals(nodeName)) {
            try {
                String id = delegateTask.getVariable("id").toString();
                OaApplyDO oaApplyDO = oaApplyService.getById(id);
                oaApplyDO.setStatus("0");
                oaApplyService.updateById(oaApplyDO);
                delegateTask.setVariable("status", "0");
            } catch (Exception e) {

            }
        } else {
            try {
                String id = delegateTask.getVariable("id").toString();
                OaApplyDO oaApplyDO = oaApplyService.getById(id);
                oaApplyDO.setStatus("1");
                oaApplyService.updateById(oaApplyDO);
                delegateTask.setVariable("status", "1");
            } catch (Exception e) {

            }
        }


    }

}
